277156b9aeb466527592ef4267abcb2ea550e176,plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/auxiliary/GrListOrMapImpl.java,GrListOrMapImpl,getType,#,45

Before Change



  public PsiType getType() {
    if (isMapLiteral()) {
      return getManager().getElementFactory().createTypeByFQClassName("java.util.Map", getResolveScope());
    }

    PsiElement parent = getParent();

After Change


  }

  public PsiType getType() {
    PsiManager manager = getManager();
    if (isMapLiteral()) {
      return manager.getElementFactory().createTypeByFQClassName("java.util.Map", getResolveScope());
    }

    PsiElement parent = getParent();
    if (parent.getParent() instanceof GrVariableDeclaration) {
      GrTypeElement typeElement = ((GrVariableDeclaration) parent.getParent()).getTypeElementGroovy();
      if (typeElement != null) {
        PsiType declaredType = typeElement.getType();
        if (declaredType instanceof PsiArrayType) return declaredType;
      }
    }

    PsiClass listClass = manager.findClass("java.util.List", getResolveScope());
    if (listClass != null) {
      PsiTypeParameter[] typeParameters = listClass.getTypeParameters();
      if (typeParameters.length == 1) {
        GrExpression[] initializers = getInitializers();
        PsiType initializerType = initializers.length > 0 ? initializers[0].getType() : null;
        PsiSubstitutor substitutor = PsiSubstitutor.EMPTY.put(typeParameters[0], initializerType);
        return manager.getElementFactory().createType(listClass, substitutor);
      } else {
        return manager.getElementFactory().createType(listClass);
      }
    }

    return null;
  }

  private boolean isMapLiteral() {